package game;

import java.awt.Graphics2D;
import java.util.LinkedList;
import java.util.Random;

public class SceneObject{

	public LinkedList<ObjetosCenario> ListCasa;
	public LinkedList<ObjetosCenario> ListPoste;
	public LinkedList<ObjetosCenario> ListAntena;
	
	private Random rnd;
	private int value;
	
	public SceneObject()
	{
		 ListCasa = new LinkedList<ObjetosCenario>();
		 ListPoste = new LinkedList<ObjetosCenario>();
		 ListAntena = new LinkedList<ObjetosCenario>();
		 rnd = new Random();
	}
	
	public void Update()
	{
		for(GameObject go : ListCasa)
		{
			go.Update();
		}
		for(GameObject go : ListPoste)
		{
			go.Update();
		}
		for(GameObject go : ListAntena)
		{
			go.Update();
		}
		
	}
	
	public LinkedList<ObjetosCenario> getList(int ID)
	{
		switch(ID)
		{
		case 1:
			return ListCasa;
		case 2:
			return ListPoste;
		default:
			return ListAntena;
		}
	}
	public int sortear(int ID)
	{
		switch(ID)
		{
		case 1: value = rnd.nextInt(this.ListCasa.size());
			break;
		case 2: value = rnd.nextInt(this.ListPoste.size());
			break;
		case 3: value = rnd.nextInt(this.ListAntena.size());
			break;
		}
		
		return value;
	}
	
	public void draw(Graphics2D g2d, Camera camera) {
		// TODO Auto-generated method stub
		for(GameObject go : ListCasa)
		{
			go.draw(g2d, camera);
		}
		for(GameObject go : ListPoste)
		{
			go.draw(g2d, camera);
		}
		for(GameObject go : ListAntena)
		{
			go.draw(g2d, camera);
		}
	}
	
	public void SetCasa(Casa casa)
	{	
			ListCasa.add(casa);
	}
	public void SetPoste(Poste Poste)
	{
			ListPoste.add(Poste);
	}
	public void SetAntena(Antena Antena)
	{
			ListAntena.add(Antena);
	}
	public LinkedList<ObjetosCenario> allObjects()
	{
		LinkedList<ObjetosCenario> allObjects = new LinkedList<ObjetosCenario>();
		for(int i =0; i< ListCasa.size(); i++)
			allObjects.add(ListCasa.get(i));
		
		for(int i =0; i< ListPoste.size(); i++)
			allObjects.add(ListPoste.get(i));
		
		for(int i =0; i< ListAntena.size(); i++)
			allObjects.add(ListAntena.get(i));
		
		return allObjects;
	}
}
